
package ocio.actions;  

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import ocio.beans.Cliente;
import ocio.services.ClienteService;
import ocio.services.ServiceLocator;

import com.opensymphony.xwork2.ActionSupport;


/**
 * Clase destinataria de petición para buscar un cliente por una 
 * cadena de texto introducida en un formulario 
 * @author Esther García Galán
 * @author Rubén Gómez Vales
 * @version 1.0 13/05/2014
 * @see ocio.beans.Cliente
 */
public class BuscarClienteAction extends ActionSupport {

	private static final long serialVersionUID = 1L;
	
	private String cadena;
	private List<Cliente> listaClientes = new ArrayList<Cliente>();
    private String mensaje;
  
    
	  /**
	 * Método execute() de la clase ActionSupport de Struts 2. 
	 * Solicita los servicios para localizar los clientes que tengan en su nombre 
	 * la cadena de texto introducida por el usuario.
	 * @return un string que indica la respuesta de la acción ejecutada sobre la petición del usuario
	 */
	public String execute(){	
	
		ServiceLocator serviceLocator = ServiceLocator.getServiceLocator();
		ClienteService clienteService = (ClienteService)serviceLocator.getService("Cliente");
		
		List<Object> listaC = new ArrayList<Object>();
		listaC = clienteService.searchByNombre(cadena);
		if (listaC.size()>0){
			Iterator<Object> itr = listaC.iterator();
			while (itr.hasNext()){
				listaClientes.add((Cliente)itr.next());
			}
			return "success";	
		} else {
			mensaje="No se han encontrado registros con el criterio de búsqueda";
			return "fail";
		}	
	}
	

	public String getMensaje() {
		return mensaje;
	}

	public void setMensaje(String mensaje) {
		this.mensaje = mensaje;
	}
	
	public String getCadena() {
		return cadena;
	}

	public void setCadena(String cadena) {
		this.cadena = cadena;
	}

	public List<Cliente> getListaClientes() {
		return listaClientes;
	}

	public void setListaClientes(List<Cliente> listaClientes) {
		this.listaClientes = listaClientes;
	}
	
	
}
